
import { _decorator, Component, Layers, Node, resources, Sprite, SpriteFrame, UITransform } from 'cc';
const { ccclass, property } = _decorator;
import levels from '../../levels';
import { TileManager } from './TileManager';
import { createUINode, randomByRange } from '../../Utils/idnex';
import { DataManager } from '../../Runtime/DataManager';
import ResourceManager from '../../Runtime/ResourceManager';



@ccclass('TileMapManager')
export class TileMapManager extends Component {

    async init(){

        const spriteFrames = await ResourceManager.Instance.loadRes('texture/tile/tile');
        const {mapInfo} = DataManager.Instance

        for(let i=0;i<mapInfo.length;i++){
            const column = mapInfo[i];
            for(let j=0;j<column.length;j++){
                const item = column[j];
                if(item.src ===null || item.type ===null){
                    continue
                }


                let  number = item.src;
                if((number === 1 || number === 5 || number === 9) && i%2===0 && j%2==0){
                    number +=randomByRange(0,4);
                }

                const  imgSrc = `tile (${number})`;


                const node = createUINode();
                const spriteFrame = spriteFrames.find(v=>v.name === imgSrc) || spriteFrames[0]
                const tileManager =  node.addComponent(TileManager);
                const type = item.type;

                tileManager.init(type,spriteFrame,i,j)

                node.setParent(this.node);
            }
        }

    }






}


